<?php 
	/**
	* 创建简历控制器
	*/
	class ResumeControl extends PublicControl
	{
		protected $getReid = null;
		protected $postReid=null;

		public function __auto()
		{
			header("Content-type: text/html; charset=utf-8");
			$model = K('Resume1');
			if ($getReid = Q('get.reid',null,'intval')) {
				// 检查用户是否是当前用户
				$res = $model->check_user($getReid);
				//检测前几个阶段是否已经完成
				$this->check_status($getReid,METHOD);

				//获得完成步骤状态，返回来为数组
				$stepArr = $model->get_step($getReid);
				$this->assign('stepArr',$stepArr);
				
				$progress = $model->get_progress($getReid);
				// p($progress);
				$this->assign('progress',$progress);
				$this->getReid = $getReid;
			}else{
				$this->getReid = 0;
			}

			if($postReid = Q('post.reid',null,'intval')){
				// 检查用户是否是当前用户
				$res = $model->check_user($postReid);
				$this->postReid = $postReid;
			}else{
				$this->postReid = 0;
			}
			
		}

		/**
		 * 简历第一阶段
		 * @return [type] [description]
		 */
		public function make1()
		{
			$model = K('Resume1');
			if(IS_POST){
				if(!$model->create())$this->error($model->error);
				if($reid = $model->add_data()){
					go(U('make2',array('reid'=>$reid)));
				}
				$this->error($model->error);
			}
			// 如果有内容就跳转到修改页面
			if($this->getReid){
				if($model->have_info($this->getReid)) go(U('make1_update',array('reid'=>$this->getReid)));
			}
			
			$this->display();
		}

		/**
		 * 第一阶段的更新
		 * @return [type] [description]
		 */
		public function make1_update()
		{
			$model = K('Resume1');
			if (IS_POST) {
				if(!$model->create())$this->error($model->error);
				$model->update_data();
				$this->success('保存成功',U('make2',array('reid'=>$this->postReid)));

			}
			#如果没有reid跳转到新建，如果有就显示
			if ($this->getReid) {
				$res = $model -> get_info($this->getReid);
				// p($res);
				$this->assign('res',$res);
				$this->display();
				die();
			}else{

				go(U('make1'));
			}
		}

		/**
		 * 简历第二阶段
		 * @return [type] [description]
		 */
		public function make2()
		{
			
			$resume2Model = K('Resume2');
			if(IS_POST){
				if(!$resume2Model->create())$this->error($resume2Model->error);
				#对resume2表里添加数据
				$resume2Model->add_data();
				#向中间表添加数据
				if(!K('ResumePos')->add_data($this->postReid))$this->error(K('ResumePos')->error);
				#更改resume1表里的完成状态
				K('Resume1')->add_step($this->postReid,2);
				go(U('make3',array('reid'=>$this->postReid)));
			}
			#如果没有reid跳转到新建，如果有就显示
			if ($this->getReid) {
				#如果有信息跳转到修改
				if($resume2Model ->have_info($this->getReid))go(U('make2_update',array('reid'=>$this->getReid)));
				// 显示城市信息
				$cityModel = K('City');
				// $cityModel -> update_cache();
				$topCity = $cityModel -> topCity;
				// 显示职位信息
				$posModel = K('PosCate');
				// $posModel->update_cache();
				$data = $posModel->get_pos_data();
				// p($data);
				$this->assign('topCity',$topCity);
				$this->assign('data',$data);

				$this->display();
			}else{
				go(U('make1'));
			}
		}

		public function make2_update()
		{
			$resume2Model = K('Resume2');
			$res = $resume2Model->have_info($this->getReid);
			$cityModel = K('City');
			// p($res);
			$city = $cityModel->get_data($res['city_cityid']);
			$ResumePos = K('ResumePos');
			$resPos = $ResumePos->get_data($res['resume1_reid']);
			// p($city);
			// 显示职位信息
			$posModel = K('PosCate');
			// $posModel->update_cache();
			$data = $posModel->get_pos_data();

			if(IS_POST){
				if(!$resume2Model->create())$this->error($resume2Model->error);
				#对resume2修改数据
				$resume2Model->update_data($this->postReid);
				#对中间表更新数据
				if(!$ResumePos->update_data($this->postReid))$this->error($ResumePos->error);
				// echo $ResumePos->getLastSql();exit;
				$this->success('保存成功',U('make3',array('reid'=>$this->postReid)));
			}
			$this->assign('res',$res);
			$this->assign('city',$city);
			$this->assign('topCity',$cityModel->topCity);
			$this->assign('data',$data);
			$this->assign('resPos',$resPos);
			// $this->assign('sonCity',$cityModel->sonCity);
			$this->display();
		}

		/**
		 * 简历第三阶段
		 * @return [type] [description]
		 */
		public function make3()
		{
			$Resume3Model = K('Resume3');
			if (IS_POST) {
				if (!$Resume3Model->create()) $this->error($Resume3Model->error);
				$Resume3Model->add_data();

				#更改resume1表里的完成状态
				K('Resume1')->add_step($this->postReid,3);
				go(U('make4',array('reid'=>$this->postReid)));
			}

			if($reid = $this->getReid){
				//是否有数据，有数据则去修改，没有数据添加
				if($Resume3Model->have_data($reid)) go(U('make3_update',array('reid'=>$reid)));
				$this->display();
			}else{
				//如果没有get参数，则去新建第一阶段
				go(U('make1'));

			}

		}


		/**
		 * 简历第三阶段的修改
		 * @return [type] [description]
		 */
		public function make3_update(){
			$resume3Model = K('Resume3');
			if(IS_POST){
				if(!$resume3Model->create()) $this->error($resume3Model->error);
				//post数据
				$reid = $this->postReid;
				//执行修改
				$resume3Model->update_data($reid);
				//跳转
				go(U('make4', array('reid'=>$reid)));
			}
			if($reid = $this->getReid){
				$data = $resume3Model->get_data($reid);
				// p($data);
				$this->assign('data', $data);

				$this->display();
			}else{
				//如果没有get参数，则去新建第一阶段
				go(U('make1'));
			}
		}

		/**
		 * 简历第四阶段
		 * @return [type] [description]
		 */
		public function make4()
		{
			$Resume4Model = K('Resume4');
			if(IS_POST){

				if(!$Resume4Model->create())$this->error($Resume4Model->error);
				if(!$Resume4Model->add_data())$this->error($Resume4Model->error);
				#更改resume1表里的完成状态
				K('Resume1')->add_step($this->postReid,4);
				$this->success('添加成功');
			}
			if($reid = $this->getReid){
				//是否有数据，有数据则去修改，没有数据添加
				// if($Resume4Model->have_data($reid)) go(U('make4_update',array('reid'=>$reid)));
				$data = $Resume4Model->get_data($reid);
				// p($data);
				$this->assign('data',$data);
			}
			$this->display();
		}
		public function make4_update()
		{
			$Resume4Model = K('Resume4');
			if(IS_POST){
				//执行验证
				if(!$Resume4Model->create()) $this->error($Resume4Model->error);
				//隐藏域获得关联id
				$reid = $this->postReid;
				//隐藏域获得教育经历主键id
				$reid4 = Q('post.reid4', 0, 'intval');
				//执行修改
				$Resume4Model->update_data($reid4,$reid);

				$this->success('修改成功');

			}
			if($reid = $this->getReid){
				$data = $Resume4Model->get_data_by_id(Q('get.reid4',0,'intval'),$reid);
				if(!$data) $this->error($Resume4Model->error);
				// p($data);
				$this->assign('data', $data);
				$this->display();
			}else{
				//如果没有get参数，则去新建第一阶段
				go(U('make1'));
			}
		}
		public function make5(){
			$resume5Model = K('Resume5');
			//如果为post提交，就是增加
			if(IS_POST){
				//执行表单验证与自动完成，如果不通过，提示错误
				if(!$resume5Model->create()) $this->error($resume5Model->error);
				//获得关联字段id,
				$reid = $this->postReid;
				//执行添加动作，不得超过6条
				if($resume5Model->add_data($reid)){
					//成功提示信息
					$this->success('添加成功');
				}
				$this->error('工作经历不能超过6条');
				
			}
			if($reid = $this->getReid){
				//通过关联字段id调取当前用户所有工作简历
				$data = $resume5Model->get_data($reid);
				$this->assign('data', $data);

				$this->display();
			}else{
				//如果没有get参数，则去新建第一阶段
				go(U('make1'));
			}
			
		}
		public function make4_del()
		{
			$Resume4Model = K('Resume4');

			if ($reid = $this->getReid) {

				$reid4  =  Q('get.reid4',0,'intval');
				if(!$Resume4Model->del_data($reid4,$reid)) $this->error($Resume4Model->error);
				$this->success('删除成功',U('make4',array('reid'=>$reid)));
			}else{

				//如果没有get参数，则去新建第一阶段
				go(U('make1'));
			}
		}

		public function make5_update(){
			//实例化模型
			$resume5Model = K('Resume5');
			//如果是POST提交
			if(IS_POST){
				if(!$resume5Model->create()) $this->error($resume5Model->error);
				//获得隐藏域单条记录关联第一阶段表id
				$reid = $this->postReid;
				//隐藏域获得单条记录主键id
				$reid5 = Q('post.reid5', '', 'intval');
				//执行模型修改方法
				$resume5Model->update_data($reid5, $reid);
				$this->success('修改成功');
			}
			//获得每条简历的单独主键id与关联第一张表的关联id,保证当前用户只能修改自己的教育经历
			if($reid = $this->getReid){
				//获得关联第一张表的字段
				$reid5 = Q('get.reid5', '', 'intval');
				//通过单条主键id获得单条数据
				$data = $resume5Model->get_id_data($reid5);
				//如果没有数据，证明不能修改，跳转到添加
				if(!$data) go(U('make5',array('reid'=>$reid)));
				//分配单条数据
				$this->assign('data', $data);
				$this->display();die;
			}
			//如果不传reid或者reid为0，告诉简历不不存在
			$this->error('简历不不存在', U('make1'));
		}

		public function make5_del(){
			//获得关联字段
			if($reReid = $this->getReid){
				//执行模型里面删除方法,通过主键id删除，还得必须是通过$reReid当前简历，
	     		// 以防通过其他手段改动redi5而乱删除其他简历的可能
				K('Resume5')->del_data(Q('get.reid5', '', 'intval'), $reReid);
				//成功提示
				$this->success('删除成功');
			}
			//如果不传reid或者reid为0，告诉简历不不存在
			$this->error('简历不不存在', U('make1'));
		}

		public function make6(){
			$resume6Model = K('Resume6');
			//如果为post提交，就是增加
			if(IS_POST){
				//执行表单验证与自动完成，如果不通过，提示错误
				if(!$resume6Model->create()) $this->error($resume6Model->error);
				//获得关联字段id,
				$reid = $this->postReid;

				//执行添加动作
				if($resume6Model->add_data($reid)){
					//成功提示信息
					$this->success('添加成功');
				}
				$this->error('培训经历不能超过6条');
				
			}
			if($reid = $this->getReid){
				//通过关联字段id调取当前用户所有培训经历
				$data = $resume6Model->get_data($reid);
				//分配数据
				$this->assign('data', $data);

				$this->display();
			}else{
				//如果不传reid或者reid为0，告诉简历不不存在
				$this->error('简历不不存在', U('make1'));
			}
			
			
		}

		public function make6_update(){
			//实例化模型
			$resume6Model = K('Resume6');
			//如果是POST提交
			if(IS_POST){
				//获得隐藏域单条记录关联第一阶段表id
				$reid = $this->postReid;
				//隐藏域获得单条记录主键id
				$reid6 = Q('post.reid6', '', 'intval');
				//执行模型修改方法
				$resume6Model->update_data($reid6, $reid);
				$this->success('修改成功');
			}
			//获得每条简历的单独主键id与关联第一张表的关联id,保证当前用户只能修改自己的教育经历
			if($reid = $this->getReid){
				//获得关联第一张表的字段
				$reid6 = Q('get.reid6', '', 'intval');
				//通过单条主键id获得单条数据
				$data = $resume6Model->get_id_data($reid6);
				//如果没有数据，证明不能修改，跳转到添加
				if(!$data) go(U('make6',array('reid'=>$reid)));
				//分配单条数据
				$this->assign('data', $data);

				$this->display();
			}else{
				//如果不传reid或者reid为0，告诉简历不不存在
				$this->error('简历不不存在', U('make1'));
			}
		}

		public function make6_del(){
			//获得关联字段
			if($reReid = $this->getReid){
				//执行模型里面删除方法,通过主键id删除，还得必须是通过$reReid当前简历，
	     		// 以防通过其他手段改动redi6而乱删除其他简历的可能
				K('Resume6')->del_data(Q('get.reid6', '', 'intval'), $reReid);
				//成功提示
				$this->success('删除成功');
			}
			//如果不传reid或者reid为0，告诉简历不不存在
			$this->error('简历不不存在', U('make1'));
		}

		public function make7(){
			$Resume7Model = K('Resume7');
			if(IS_POST){
				$reid = $this->postReid;
				//执行上传方法
				if($Resume7Model->update_face($reid)){
					$this->success('上传成功',U('ResumeManage/preview',array('reid'=>$reid)));	
				}
				$this->error($Resume7Model->error);
			}
			if($reid = $this->getReid){

				//通过简历id获得数据
				$data = $Resume7Model->get_data($reid);
				$this->assign('data', $data);
				$this->display();
			}else{
				//如果不传reid或者reid为0，告诉简历不不存在
				$this->error('简历不不存在', U('make1'));
			}
		}

		public function check_step($reid,$method)
		{
			$stepstatusArr = K('Resume1')->get_step($reid);

			if (!$stepstatusArr) $this->error('简历不存在',U('make1'));

			$data = array();
			$step = substr($method,4,1);

			switch (true) {
				case $step >= 2 && !in_array(1, $stepArr):
					$data['method'] = 'make1';
					$data['msg'] = '基本信息';
					break;
				case $step >= 3 && !in_array(2, $stepArr):
					$data['method'] = 'make2';
					$data['msg'] = '求职意向';
					break;
				case $step >= 4 && !in_array(3, $stepArr):
					$data['method'] = 'make3';
					$data['msg'] = '技能特长';
					break;
				case $step >= 5 && !in_array(4, $stepArr):
					$data['method'] = 'make4';
					$data['msg'] = '教育经历';
					break;
			}


			if($data){
				$this->error('请先完成' . $data['msg'], U($data['method'],array('reid'=>$reid)));
			}
		}




	}

?>